Video technology relates to electronically capturing, processing, recording, and reconstructing a sequence of still images referred to as frames, so as to represent motion. Video includes a number of frames based on a predefined frame rate. For example, in the U.S., the Advanced Television Systems Committee (“ATSC”) establishes a standard frame rate of 29.97 frames/second for video used for commercial broadcasting.
For video transmitted via a digital video signal (e.g., based on the high definition serial digital interface (HD-SDI) standard), each frame is represented by a number of pixels commonly described as the smallest unit of an image that can be represented or controlled. The number of pixels in a frame is based on a predefined resolution of the frame (typically defined by a number of columns and rows of pixels). For example, a frame having a resolution of 1,920 columns and 1,080 rows is referred to as 1,920×1,080 and is represented by the arithmetic product of approximately 2,073,600 pixels. Pixels have many attributes, including for example, chrominance values that represent color, and luma values (referred to herein as lumas) that represent brightness. Once captured and processed, video is typically encoded and recorded as a digital file. Thereafter, the file is retrieved and the video is reconstructed by decoding the file.
For a variety of reasons, such as to assist with video editing, it is generally considered useful and helpful to analyze video frames and identify select frame attributes. For example, consider a video package associated with a traditional television show, having multiple show-segment VC (i.e., portions of a “main” show) and intervening barter VCs. Digital video recorders (DVRs) that are configured to record video may seek to analyze the video package to identify the barter VCs, thus allowing for the automatic skipping of commercials when a user watches the recorded video package. One technique for doing this relies on the identification of one or more frames having a “black” frame attribute, wherein the frames represent a short black (or generally black) break between a show-segment VC and a barter VC in a video package.
A traditional approach for identifying a black frame attribute involves decoding a video file and analyzing pixels of a given frame. In one approach, a black frame attribute is identified if all (or a majority) of pixels in the frame are deemed black (i.e., based on the corresponding pixel's chrominance value). However, due to the presence of static or noise in a frame (that may result in random white or gray pixels), this approach often fails to properly identify select frames as having a black frame attribute (i.e., it provides false-negative results). To address such issues, other approaches have been employed that calculate an average pixel luma value of an entire frame. While this approach may reduce false-negative results, it often causes the opposite and undesired effect of providing false-positive results. For example, certain frames that are primarily black, but that include some traditionally substantive content (e.g., a gray moon or white movie credits on a black background), and that are not intended to be identified as having a black frame attribute, are often inaccurately identified as such.
In addition to the issues of false-negative and false-positive results, traditional approaches for identifying black frame attributes also require considerable system resources, particularly if chrominance values are analyzed. Among other things, such approaches require a significant amount of memory and processor utilization, which may result in relatively slow execution.